From 3757b3500393e7e250018801fe0bd735b93f8cb9 Mon Sep 17 00:00:00 2001 From: oliskoli Date: Sun, 24 Aug 2008 16:27:56 +0000 Subject: [PATCH] unicsv: Rename function for swiss grid conversion. Remove additional seperator when using swiss grid --- unicsv.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/unicsv.c b/unicsv.c index 1237bd7d8..3b4909158 100644 --- a/unicsv.c +++ b/unicsv.c @@ -222,9 +222,10 @@ static route_head *unicsv_track, *unicsv_route; static char unicsv_outp_flags[(fld_terminator + 8) / 8]; static grid_type unicsv_grid_idx; static int unicsv_datum_idx; -static char *opt_datum, *opt_grid, *opt_utc, *opt_filename, *opt_format; +static char *opt_datum, *opt_grid, *opt_utc, *opt_filename, *opt_format, *opt_prec; static int unicsv_waypt_ct; static char unicsv_detect; +int llprec; static arglist_t unicsv_args[] = { {"datum", &opt_datum, "GPS datum (def. WGS 84)", @@ -237,6 +238,8 @@ static arglist_t unicsv_args[] = { NULL, ARGTYPE_BOOL, ARG_NOMINMAX}, {"filename", &opt_filename, "Write filename(s) from input session(s)", NULL, ARGTYPE_BOOL, ARG_NOMINMAX}, + {"prec", &opt_prec, "Precision of numerical coordinates (no grid set)", + "6", ARGTYPE_INT | ARGTYPE_HIDDEN, "0", "15"}, ARG_TERMINATOR }; @@ -926,7 +929,7 @@ unicsv_parse_one_line(char *ibuf) src_datum = DATUM_WGS84; /* don't convert afterwards */ } else if ((swiss_easting != unicsv_unknown) && (swiss_northing != unicsv_unknown)) { - GPS_Math_CH1903_NGEN_To_WGS84(swiss_easting, swiss_northing, + GPS_Math_Swiss_EN_To_WGS84(swiss_easting, swiss_northing, &wpt->latitude, &wpt->longitude); src_datum = DATUM_WGS84; /* don't convert afterwards */ } @@ -1150,14 +1153,15 @@ unicsv_waypt_disp_cb(const waypoint *wpt) case grid_swiss: { double north, east; - if (! GPS_Math_WGS84_To_CH1903_NGEN(wpt->latitude, wpt->longitude, &east, &north)) + if (! GPS_Math_WGS84_To_Swiss_EN(wpt->latitude, wpt->longitude, &east, &north)) unicsv_fatal_outside(wpt); - gbfprintf(fout, "%.f%s%.f%s", - east, unicsv_fieldsep, north, unicsv_fieldsep); + gbfprintf(fout, "%.f%s%.f", + east, unicsv_fieldsep, north); + break; } default: - gbfprintf(fout, "%.6f%s%.6f", lat, unicsv_fieldsep, lon); + gbfprintf(fout, "%.*f%s%.*f", llprec, lat, unicsv_fieldsep, llprec, lon); break; } @@ -1355,6 +1359,8 @@ unicsv_wr_init(const char *filename) unicsv_datum_idx = DATUM_WGS84; /* internal, becomes CH1903 */ else unicsv_datum_idx = gt_lookup_datum_index(opt_datum, MYNAME); + + llprec = atoi(opt_prec); } static void -- 2.30.2